package com.android.volley;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
 * User: mcxiaoke
 * Date: 15/3/17
 * Time: 14:47
 */
class InternalUtils
{
	
	// http://stackoverflow.com/questions/9655181/convert-from-byte-array-to-hex-string-in-java
	private final static char[] HEX_CHARS = "0123456789ABCDEF".toCharArray();
	
	private static String convertToHex( byte[] bytes )
	{
		char[] hexChars = new char[ bytes.length * 2 ];
		for( int j = 0 ; j < bytes.length ; j++ )
		{
			int v = bytes[ j ] & 0xFF;
			hexChars[ j * 2 ] = HEX_CHARS[ v >>> 4 ];
			hexChars[ j * 2 + 1 ] = HEX_CHARS[ v & 0x0F ];
		}
		return new String( hexChars );
	}
	
	public static String sha1Hash( String text )
	{
		String hash = null;
		try
		{
			final MessageDigest digest = MessageDigest.getInstance( "SHA-1" );
			final byte[] bytes = text.getBytes( "UTF-8" );
			digest.update( bytes, 0, bytes.length );
			hash = convertToHex( digest.digest() );
		}
		catch( NoSuchAlgorithmException e )
		{
			e.printStackTrace();
		}
		catch( UnsupportedEncodingException e )
		{
			e.printStackTrace();
		}
		return hash;
	}
	
}
